Een generieke lijst serialiseren naar CSV
Om de datastructuur, een generieke lijst, te serialiseren moeten we deze datastructuur omzetten naar een string (een array of chars).
Stappenplan
- We beginnen met een methode te maken met de naam
SerializeObjectToCsv(List<Postcode> list, string separator)
in klasseTryOut
in de namespaceDotNetCore.Learning
in het Learning.cs bestand. Deze methode aanvaardt twee parameters:- de te serialiseren generieke lijst;
- een string waarvan de waarde als onderscheidingsteken in het csv bestand wordt gebruikt;
public static string SerializeObjectToCsv(List<Postcode> list, string separator) { string fileName = @"Data/Postcodes2.csv"; string message; try { TextWriter writer = new StreamWriter(fileName); foreach (Postcode item in list) { // One of the most versatile and useful additions to the C# language in version 6 // is the null conditional operator ?. writer.WriteLine("{0}{5}{1}{5}{2}{5}{3}{5}{4}", item?.Code, item?.Plaats, item?.Provincie, item?.Localite, item?.Province, separator); } message = $"Het bestand met de naam {fileName} is gemaakt!"; } catch (Exception e) { // Melding aan de gebruiker dat iets verkeerd gelopen is. // We gebruiken hier de nieuwe mogelijkheid van C# 6: string interpolatie message = $"Kan het bestand met de naam {fileName} niet maken.\nFoutmelding {e.Message}."; } return message; }
- We proberen deze methode uit in de
main
methode van deProgram
klasse in het bestand Program.cs:using System; namespace DotNetCore.Learning { class Program { static void Main(string[] args) { Console.WriteLine(TryOut.SerializeObjectToCsv(TryOut.GetPostcodeList(), "|")); Console.ReadKey(); } } }
- En dat is het resultaat, het bestand is met de postcodes voorgesteld als csv is gemaakt:
2020-10-23 09:06:43